It is not uncommon for a user to possess more than one computing device. For example, a user can have a desktop computer, a server and/or a laptop computer for work or home use. The user also could have a portable device, such as a palm-top computer, a personal digital assistant (PDA), a pocket PC, a mobile phone, or the like. Typically data is copied to and between multiple devices. Often, when data is modified in one device, synchronization is required to update the other devices. For example, in preparation for business travel, a user can copy files from a desktop computer to a portable device. While away, the user then can modify and/or add files to the portable device. When the user returns, the modified/new files need to be copied to the desktop computer. This typically involves synchronization.
Synchronization ensures that designated data from multiple devices or systems are consistent. Typical synchronization systems ship changes between devices, or more specifically between data stores, and reconcile the changes if conflicts exist. For example, upon activation, a synchronization application can detect file changes or additions on a first device and copy or replicate new and/or altered files to a second device. This causes the files on the first device to be synchronized with files on the second device. Synchronization can also be performed remotely across a network. Typical synchronization systems attempt to resolve the conflict according to a policy at the time of synchronization, but are not able to resolve the conflict at a later time. Typical synchronization system also do not provide the capability to view and resolve a conflict at a granularity that users understand, with related conflicts grouped together and resolvable at the same time.